Security News
pnpm 10.0.0 Blocks Lifecycle Scripts by Default
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
autoprefixer-core
Advanced tools
Autoprefixer is a tool to parse CSS and add vendor prefixes using values from Can I Use.
This is core package to build Autoprefixer plugin for some environment (like grunt‑autoprefixer). For end-user documentation, features and plugins list visit main Autoprefixer project.
Sponsored by Evil Martians. Based on PostCSS framework.
Write your CSS rules without vendor prefixes (in fact, forget about them entirely):
:fullscreen a {
transition: transform 1s;
}
Process your CSS by Autoprefixer:
var autoprefixer = require('autoprefixer-core');
var prefixed = autoprefixer.process(css).css;
It will use the data based on current browser popularity and property support to apply prefixes for you:
:-webkit-full-screen a {
-webkit-transition: -webkit-transform 1s;
transition: transform 1s;
}
:-moz-full-screen a {
transition: transform 1s;
}
:-ms-fullscreen a {
transition: transform 1s;
}
:fullscreen a {
-webkit-transition: -webkit-transform 1s;
transition: transform 1s;
}
To process your CSS you need to make 2 steps:
Function autoprefixer(options)
returns new processor object:
var processor = autoprefixer({ browsers: ['> 1%', 'IE 7'], cascade: false });
There are 2 options:
browsers
(array): list of browsers, which are supported in your project.
You can directly specify browser version (like iOS 7
) or use selections
(like last 2 version
or > 5%
). Full browsers documentation is available
on main Autoprefixer page.
By default, Autoprefixer uses
'> 1%', 'last 2 versions', 'Firefox ESR', 'Opera 12.1'
. You can get current
default list from autoprefixer.default
property.
cascade
(boolean): should Autoprefixer uses Visual Cascade,
if CSS will be uncompressed.
Processor object had:
.process(css, opts)
method, which will add prefixes to css
..info()
method, which returns debug information: which browsers are selected
and which properties will be prefixed.postcss
property returns PostCSS processor to use in chain
with other PostCSS processors.You can use processor object to process several CSS files to increase perfomance.
There are autoprefixer.process()
, autoprefixer.info()
and autoprefixer.postcss
shortcuts, which use default browsers and options.
Method process(css, opts)
from Autoprefixer processor is a PostCSS’s method.
You must set from
and to
options with file names to generates corrects
source maps and useful error messages.
Options:
from
(path): file path to origin CSS files.
to
(path): file path to future CSS file, which will
contain processed CSS with prefixes.
safe
(boolean): enables Safe Mode in PostCSS. By default false
.
map
contains options for source maps:
inline: true
to force inline map to CSS annotation comment.
You can shortcut map { inline: true }
to map: 'inline'
.prev
(string or object): map content from previous processing step
(like Sass compilation).If you set map: false
, PostCSS will remove source map.
You can read more about the source map options in PostCSS documentation.
You parse CSS only once and then process it through array of PostCSS processors.
For example, you can use gulp-postcss:
var postcss = require('gulp-postcss');
var sourcemaps = require('gulp-sourcemaps');
gulp.task('css', function () {
var processors = [
require('autoprefixer')('last 1 version'),
require('css-mqpacker'),
require('csswring')
];
return gulp.src('./src/style.css')
.pipe(sourcemaps.init())
.pipe(postcss(processors))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./dest'));
});
PostCSS has a special safe mode to parse broken CSS. If you set the safe: true
option to the process
method, it will parse a {
as a {}
:
autoprefixer.process('a {'); // will throw “Unclosed block”
autoprefixer.process('a {', { safe: true }); // will process as a closed block
It is useful for legacy code when using several hacks, or interactive tools with live input, like Autoprefixer demo.
You can check which browsers are selected and which properties will be prefixed:
info = autoprefixer({ browsers: ['last 1 version'] }).info();
console.log(info);
FAQs
autoprefixer-core was depreacted, use autoprefixer
The npm package autoprefixer-core receives a total of 30,509 weekly downloads. As such, autoprefixer-core popularity was classified as popular.
We found that autoprefixer-core demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.